/*
 Escribir un programa que rellene una matriz cuadrada (las dimensiones de la 
 matriz serán un parámetro que se pida al usuario) con números aleatorios de tal
 modo que la matriz sea simétrica. Imprimir la matriz por pantalla.
 */
package Tema1.Ejercicio10;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Random;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author larabenito
 */
public class Ejercicio10 {

    public static void main(String[] args) {
        try {
            String string_usuario;
            System.out.println("Introduce las dimensiones de la matriz: ");
            BufferedReader consola = new BufferedReader(new InputStreamReader(System.in));
            string_usuario = consola.readLine();
            int dimension = Integer.parseInt(string_usuario);
            int matriz[][] = new int[dimension][dimension];

            Random rand = new Random();

            for (int i = 0; i < dimension; i++) {
                for (int j = 0; j < dimension; j++) {
                    matriz[i][j] = Math.abs(rand.nextInt() % 100);
                    //Modulo 100 para que saque numeros entre 0 y 100                             
                    System.out.print(" " + matriz[i][j]);
                }
                System.out.println("");
            }
            System.out.println("-----------");
            matriz = hacerSimetrica(matriz);
        } catch (IOException ex) {
            Logger.getLogger(Ejercicio10.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    public static int[][] hacerSimetrica(int[][] matriz) {
        int longitud = matriz.length - 1;
        for (int i = 0; i < matriz.length; i++) {
            for (int j = 0; j < matriz.length; j++) {
                int distanciaX = longitud - i;
                int distanciaY = longitud - j;
                int suma = distanciaX - distanciaY;
                if (!(suma == longitud)) {
                    matriz[longitud - i][longitud - j] = matriz[i][j];
                }
                System.out.print(" " + matriz[i][j]);
            }
            System.out.println("");
        }
        return matriz;
    }

}
